<?php
require_once('lib/gymnasium.php');
require_once('lib/category.php');
require_once('lib/gymhours.php');
require_once('lib/season.php');
require_once('pages/inscription/mode.php');

function boolean_radio_button($field_name, $current_value)
{
	echo '<input type="radio" value="1" id="'.$field_name.'_1" name="'.$field_name.'[]" ';
	if ($current_value == 1) {
		echo 'checked="checked" ';
	}
	echo '/>&nbsp;Oui';
	echo '&nbsp;&nbsp;&nbsp;&nbsp;';
	echo '<input type="radio"  value="0" id="'.$field_name.'_0" name="'.$field_name.'[]" ';
	if ($current_value == 0) {
		echo 'checked="checked" ';
	}
	echo '/>&nbsp;Non';
}

?>

<script type="text/javascript" src="pages/inscription/form_helper.js"></script>
<script type="text/javascript" src="pages/inscription/registration.js"></script>
<?php
/*
 * Sélection du mode
 */
if (!$_SESSION['is_connect']) {
	// pas connecté => demande inscription
	$mode = MODE_REGISTRATION;
}
else {
	if (!isset($_GET['id'])) {
		// connecté et pas d'id fourni => modification de son propre profil, ou réinscription
		$id_edit = intval($_SESSION['id']);
		$member = member_get_by_id($id_edit);
		switch ($member['status_code']) {
			case 'CANCELED':
			case 'OLD_MEMBER':
				$mode = MODE_SELF_REINSCRIPTION;
				break;
			default:
				$mode = MODE_SELF_EDIT;
				break;
		}
	}
	else {
		// connecté avec un id fourni
		$id_edit = intval($_GET['id']);

		// on utilise l'id 0 pour signifier l'ajout d'un membre sur le compte mail
		// (cela évite de gérer des paramètres supplémentaires dans l'url)
		if ($id_edit == 0) {
			$mode = MODE_ADD_MEMBER;
			$member = member_get_by_id($_SESSION['id']);
		}
		else {
			$member = member_get_by_id($id_edit);
			if ($member != NULL) {
				// l'id fourni correspond à un membre valide
				
				// si on est admin, on édite un tiers
				if ($_SESSION['status_code'] == 'ADMIN') {
					$mode = MODE_ADMIN_EDIT;
				}
				else {
					// sinon, on vérifie que l'on a droit d'accéder à ce sous-compte (email identique)
					if ($member['email'] == $_SESSION['email']) {
						// soit édition, soit réinscription en fonction du statut de la personne éditée
						switch ($member['status_code']) {
							case 'CANCELED':
							case 'OLD_MEMBER':
								$mode = MODE_REINSCRIPTION;
								break;
							case 'MEMBER':
							case 'WAITING_MEMBER':
								$mode = MODE_EDIT;
								break;
							default:
								$mode = MODE_ERROR;
								break;
						}
					}
					else {
						// voyou!
						$mode = MODE_ERROR;
					}
				}
			}
			else {
				// la personne n'existe pas
				$mode = MODE_ERROR;
			}
		}
	}
}

/*
 * Titre de la page
 */
switch ($mode) {
	case MODE_ERROR:
		echo '<h2>Erreur</h2>';
		echo '<p class="erreur">La page demandée est invalide</p>';
		return;
	case MODE_REGISTRATION:
		echo '<h2>Inscription au club (saison '.season_print(season_get_current()).')</h2>';
		break;
	case MODE_SELF_EDIT:
		echo '<h2>Modifier mon profil</h2>';
		break;
	case MODE_EDIT:
		echo '<h2>Modifier un profil de mon compte e-mail</h2>';
		break;
	case MODE_ADD_MEMBER:
		echo '<h2>Inscrire un autre membre sur mon compte e-mail (saison '.season_print(season_get_current()).')</h2>';
		break;
	case MODE_ADMIN_EDIT:
		echo '<h2>Modifier un adhérent (mode administrateur)</h2>';
		echo '<p class="warning">Attention, vous êtes en train de modifier les informations d\'un tiers.</p>';
		break;
	case MODE_SELF_REINSCRIPTION:
		echo '<h2>Demande de réinscription (saison '.season_print(season_get_current()).')</h2>';
		break;
	case MODE_REINSCRIPTION:
		echo '<h2>Réinscrire un profil de mon compte e-mail (saison '.season_print(season_get_current()).')</h2>';
		break;
}

if ($mode & MODE_X_EDIT) {
	$day = substr($member['birth'], 0, 2);
	$month = substr($member['birth'], 3, 2);
	$year = substr($member['birth'], 6, 4);
}
elseif ($mode == MODE_REGISTRATION) {
	$member = array();
	$sql_fields = sql_query('SHOW FIELDS FROM Member');
	while($field = mysql_fetch_assoc($sql_fields)) {
		$member[$field['Field']] = '';
	}
}

?>

<div id="ajax_result" class="ajax"></div>
<div id="form_inscription">
<?php

if ($mode == MODE_REGISTRATION) {
	?>
	<p>
		Vous devez remplir tous les champs afin de valider votre demande d'inscription.<br />
		Si l'opération s'est déroulée correctement, vous recevrez un email de confirmation.
	</p>
	<p style="margin-top:-10px;">
		Si vous souhaitez inscrire plusieurs personnes sur une même adresse e-mail, cela est possible. <br />
		Une fois connecté, vous pourrez ajouter d'autres personnes sur votre compte.
	</p>
	<?php
}

?>
<form method="post" action="<?php echo $_SERVER['REQUEST_URI']; ?>">
	<p>
		<input type="hidden" name="id" id="id" value="<?php echo $member['id']; ?>" />
		<input type="hidden" name="mode" id="mode" value="<?php echo $mode ?>" />
	</p>

	<table class="form-content">
		<tr>
			<td><label for="name">Nom</label></td>
			<td>
				<input type="text" name="name" id="name" value="<?php if ($mode & MODE_X_EDIT) echo $member['name']; ?>" />
			</td>
		</tr>

		<tr>
			<td><label for="firstname">Prénom</label></td>
			<td>
				<input type="text" name="firstname" id="firstname" value="<?php if ($mode & MODE_X_EDIT) echo $member['firstname']; ?>"	/>
			</td>
		</tr>

		<tr>
			<td>Date de naissance</td>
			<td>
				Jour :
				<select name="birth1" id="birth1" class="birth">
					<option value="" selected="selected"></option>
					<?php
					for ($i = 1 ; $i < 32 ; $i++) {
						$val = sprintf('%02d', $i);
						echo '<option value="'.$val.'"';
						if (($mode & MODE_X_EDIT) && ($i == $day)) {
							echo ' selected="selected"';
						}
						echo '>'.$val.'</option>';
					}
					?>
				</select>
				Mois :
				<select name="birth2" id="birth2" class="birth">
					<option value="" selected="selected"></option>
					<?php
					for ($i = 1 ; $i < 13 ; $i++) {
						$val = sprintf('%02d', $i);
						echo '<option value="'.$val.'"';
						if (($mode & MODE_X_EDIT) && ($i == $month)) {
							echo ' selected="selected"';
						}
						echo '>'.$val.'</option>';
					}
					?>
				</select>
				Année :
				<select name="birth3" id="birth3" class="birth last">
					<option value="" selected="selected"></option>
					<?php
					for ($i = date('Y') ; $i > (date('Y')-81) ; $i--) {
						echo '<option value="'.$i.'"';
						if (($mode & MODE_X_EDIT) && ($i == $year)) {
							echo ' selected="selected"';
						}
						echo '>'.$i.'</option>';
					}
					?>
				</select>
			</td>
		</tr>
		<tr>
			<td colspan="2" style="padding: 0;">
				<div id="under18" class="hidden">
					<p>Merci de renseigner les informations suivantes (obligatoires pour les mineurs) :</p>
					<?php
					if ($mode & MODE_X_EDIT && $member['idParent'] != 0) {
						$parent = member_get_parent($member['idParent']);
						$input_pname = $parent['name'];
						$input_pfirstname = $parent['firstname'];
						$input_emerg_phone = $parent['emergency_phone'];
						$input_pemail = $parent['email'];
					}
					else {
						$input_pname = '';
						$input_pfirstname = '';
						$input_emerg_phone = '';
						$input_pemail = '';
					}
					?>
					<table class="form-content">
						<tr>
							<td><label for="namep">Nom parent (ou responsable)</label></td>
							<td><input type="text" name="namep" id="namep" value="<?php echo $input_pname ?>" /></td>
						</tr>
						<tr>
							<td><label for="firstnamep">Prénom parent (ou responsable)</label></td>
							<td><input type="text" name="firstnamep" id="firstnamep" value="<?php echo $input_pfirstname ?>" /></td>
						</tr>
						<tr>
							<td><label for="emergency_phone">Numéro à appeler en cas d'urgence</label></td>
							<td><input type="text" name="emergency_phone" id="emergency_phone" maxlength="10" value="<?php echo $input_emerg_phone ?>" class="js-numeric" /></td>
						</tr>
						<tr>
							<td><label for="emailp">E-mail des parents (ou responsable)</label></td>
							<td><input type="text" name="emailp" id="emailp" value="<?php echo $input_pemail ?>" /></td>
						</tr>
					</table>
				</div>
			</td>
		</tr>
		<tr>
			<td>
				<label>Sexe</label>
			</td>
			<td>
				<input type="radio" value="M" id="gender_M" name="gender[]"
					<?php if (($mode & MODE_X_EDIT) && $member['gender'] == 'M') echo ' checked="checked" '; ?>
				/>&nbsp;M&nbsp;&nbsp;&nbsp;&nbsp;
				<input type="radio"  value="F" id="gender_F" name="gender[]"
					<?php if (($mode & MODE_X_EDIT) && $member['gender'] == 'F') echo ' checked="checked" '; ?>
				/>&nbsp;F
			</td>
		</tr>
		<tr>
			<td>
				<label for="email">E-mail</label>
				<?php
				if ($mode == MODE_REGISTRATION) {
					?>
					<span class="tooltip">
						<img src="images/icons/help.png" alt="help" />
						<span>Vous devez indiquer un e-mail valide afin de poursuivre l'inscription,
						celui-ci sera votre identifiant de connexion au site</span>
					</span>
					<?php
				}
				?>
			</td>
			<td>
				<input type="text" name="email" id="email" value="<?php echo $member['email']; ?>"
					<?php echo ($mode == MODE_ADD_MEMBER || $mode == MODE_SELF_REINSCRIPTION || $mode == MODE_REINSCRIPTION) ? ' disabled="disabled"' : ''; ?> />
			</td>
		</tr>
		<?php if ($mode == MODE_REGISTRATION) { ?>
			<tr>
				<td>
					<label for="pass">Mot de passe</label>
					<span class="tooltip">
						<img src="images/icons/help.png" alt="help" />
						<span>Le mot de passe servira à vous connecter sur le site et doit comporter au moins 6 caractères parmis la liste suivante :<br />A-Z, a-z, 0-9, . _ -</span>
					</span>
				</td>
				<td>
					<input type="password" name="pass" id="pass" />
				</td>
			</tr>
			<tr>
				<td>
					<label for="pass2">Confirmez mot de passe</label>
				</td>
				<td>
					<input type="password" name="pass2" id="pass2" />
				</td>
			</tr>
		<?php } ?>
		<tr>
			<td><label for="homephone">Téléphone fixe</label></td>
			<td><input type="text" name="homephone" id="homephone" maxlength="10" value="<?php echo $member['homephone']; ?>" class="js-numeric" /></td>
		</tr>
		<tr>
			<td><label for="cellphone">Téléphone portable</label></td>
			<td><input type="text" name="cellphone" id="cellphone" maxlength="10" value="<?php echo $member['cellphone']; ?>" class="js-numeric" /></td>
		</tr>
		<tr>
			<td><label for="address">Adresse postale</label></td>
			<td><input type="text" name="address" id="address" value="<?php echo $member['address']; ?>" /></td>
		</tr>
		<tr>
			<td>
				<label for="postal_code">Code postal</label>
				<span class="tooltip">
					<?php echo icon_tag('help') ?>
					<span>Le code postal doit être composé de 5 chiffres</span>
				</span>
			</td>
			<td><input type="text" name="postal_code" id="postal_code" maxlength="5" value="<?php echo $member['postal_code']; ?>" class="js-numeric" /></td>
		</tr>
		<tr>
			<td><label for="city">Ville</label></td>
			<td>
				<select name="city" id="city">
					<?php $hide = ($mode == MODE_REGISTRATION && $member['city'] == '') || ($member['city'] == 'Garches' || $member['city'] == 'Saint-Cloud') ? 'class="hidden"' : ''; ?>
					<option value=""></option>
					<option value="Garches" <?php echo $member['city'] == 'Garches' ? 'selected="selected"' : ''; ?>>Garches</option>
					<option value="Saint-Cloud" <?php echo $member['city'] == 'Saint-Cloud' ? 'selected="selected"' : ''; ?>>Saint-Cloud</option>
					<option value="other" <?php echo $member['city'] != '' && $member['city'] != 'Garches' && $member['city'] != 'Saint-Cloud' ? 'selected="selected"' : ''; ?>>Autre (précisez)</option>
				</select><br />
				<input type="text" name="other_city" id="other_city" value="<?php echo $member['city']; ?>" <?php echo $hide; ?> />
			</td>
		</tr>
		<tr>
			<td>Choix d'un gymnase</td>
			<td>
				<select name="gymnasium" id="gymnasium">
				<option value=""></option>
				<?php
				$gyms = gym_get_list();
				while ($row = mysql_fetch_assoc($gyms)) {
					echo '<option value="'.$row['id'].'"';
					if (($mode != MODE_REGISTRATION) && ($row['id'] == $member['id_gym'])) {
						echo ' selected="selected"';
					}
					echo'>'.$row['name'].'</option>';
				}
				?>
				</select>
			</td>
		</tr>
		<tr>
			<td>
				<label for="category">Créneau horaire</label><br />
				<b><a href="javascript:;" id="open-hours"><?php echo icon_tag('application_view_tile') ?> Voir les horaires et les places disponibles</a></b>
			</td>
			<td>
				<select name="category" id="category">
				<option value=""></option>
				<?php
				$cats = cat_get_list();
				$hidden_cats = array('open'); // ajouter le nom des autres catégories (créneaux) à cacher en les séparant par des virgules
				while ($row = mysql_fetch_assoc($cats)) {
					if(!in_array(strtolower($row['name']), $hidden_cats)) {
						echo '<option value="'.$row['id'].'"';
						if (($mode != MODE_REGISTRATION) && ($row['id'] == $member['id_cat'])) {
							echo ' selected="selected"';
						}
						echo '>'.$row['name'].'</option>';
					}
				}
				?>
				</select>
			</td>
		</tr>
		<tr>
			<td>
				<label for="climbing_years_practice">Nombre d'années de pratique de l'escalade</label>
			</td>
			<td>
				<select name="climbing_years_practice" id="climbing_years_practice">
					<option value=""></option>
					<?php for ($i = 0 ; $i <= 10 ; ++$i) {
						echo '<option value="'.$i.'"';
						if (($mode & MODE_X_EDIT) && $i == $member['climbing_years_practice']) {
							echo ' selected="selected"';
						}
						echo $i != 10 ? '>'.$i.'</option>' : '>10 et plus&nbsp;</option>';
					} ?>
				</select>
			</td>
		</tr>
		<tr>
			<td>
				<label for="climbing_level">Niveau d'escalade</label>
			</td>
			<td>
				<select name="climbing_level" id="climbing_level">
					<option value=""></option>
					<?php foreach (array('Débutant', '4', '5', '6', '7') as $level) {
						echo '<option value="'.$level.'"';
						if (($mode & MODE_X_EDIT) && $level == $member['climbing_level']) {
							echo ' selected="selected"';
						}
						echo '>'.$level.'</option>';
					} ?>
				</select>
			</td>
		</tr>
		<tr>
			<td>
				<label>Interressé(e) par d'éventuelles compétitions ?</label>
			</td>
			<td>
				<?php $valcompet = $mode == MODE_REGISTRATION ? 1 : $member['competitions']; boolean_radio_button('competitions', $valcompet); ?>
			</td>
		</tr>
		<tr>
			<td>
				<label>Bénéficiez-vous du P@SS 92 ?</label>
				<span class="tooltip">
					<?php echo icon_tag('help') ?>
					<span>Le P@SS 92 est la prise en charge par les Hauts de Seine d'une partie de la cotisation annuelle des enfants. Pour en savoir davantage sur le P@SS 92, rendez-vous sur le site du département, <a href="http://www.hauts-de-seine.net/education-jeunesse/Autres/P%40ss92" target="_blank">en cliquant ici</a></span>
				</span>
			</td>
			<td>
				<?php boolean_radio_button('has_pass92', $member['has_pass92']); ?>
			</td>
		</tr>
		<tr>
			<td>
				<label>Désirez-vous un justificatif ?</label>
				<span class="tooltip">
					<?php echo icon_tag('help') ?>
					<span>Un justificatif d'inscription est souvent demandé par les Comités d'Entreprise pour les remboursements de cotisations</span>
				</span>
			</td>
			<td>
				<?php boolean_radio_button('need_registration_proof', $member['need_registration_proof']); ?>
			</td>
		</tr>
		<tr>
			<td>
				<label>Autorisez-vous Adrénaline à utiliser votre image&nbsp;?</label>
				<span class="tooltip">
					<?php echo icon_tag('help') ?>
					<span>Permettre à Adrénaline de publier des photos de vous ou de vos enfants sur le site (exemple : photos de groupe prises lors des sorties, etc.)</span>
				</span>
			</td>
			<td>
				<?php $valimg = $mode == MODE_REGISTRATION ? 1 : $member['authorize_image_use']; boolean_radio_button('authorize_image_use', $valimg); ?>
			</td>
		</tr>
		<?php if ($mode & MODE_X_REGIS || $mode == MODE_SELF_REINSCRIPTION || $mode == MODE_REINSCRIPTION) { ?>
			<!-- saut de ligne qui évite de mettre un <br /> moche dans le tableau -->
			<tr><td>&nbsp;</td><td>&nbsp;</td></tr>
			<tr>
				<td colspan="2" style="text-align:left;">
					<input type="checkbox" name="check_transport" id="check_transport" />
					&nbsp;En cochant cette case, vous acceptez le fait qu'Adrénaline ne peut être tenu responsable en cas d'accident quant au transport pour se rendre et revenir du lieu d'une activité organisée par le club (les sorties ne sont pas obligatoires).
				</td>
			</tr>
			<tr>
				<td colspan="2" style="text-align:left;">
					<input type="checkbox" name="check_reglement" id="check_reglement" />
					&nbsp;En cochant cette case, vous attestez avoir bien pris connaissance de l'intégralité des statuts de l'association, du règlement intérieur du club Adrénaline ainsi que de celui du gymnase de votre créneau. Vous déclarez aussi l'exactitude des informations transmises.
				</td>
			</tr>
		<?php } ?>
	</table>

	<p><input type="submit" name="valider" id="valider" value="Valider" /></p>
	<div class="ajax"></div>
</form>

</div>

<p>
	<small>Conformément à la loi Informatique et Liberté du 6 janvier 1978, vous disposez d'un droit d'accès, de rectification et d'opposition aux données personnelles vous concernant. Nous vous précisons que vos informations personnelles sont uniquement réservées à l'usage du club Adrénaline et qu'elles ne seront en aucun cas divulguées à une tierce personne ou à une organisation.</small>
</p>


<div class="hidden" id="dialog-hours">
<table class="table-contain">
	<tr>
		<th>Catégorie</th>
		<?php
		mysql_data_seek($gyms, 0);
		while ($row = mysql_fetch_assoc($gyms)) {
			echo '<th>'.$row['name'].'</th>';
		}
		?>
	</tr>
	<?php
	$hours = hours_get_list();
	foreach ($hours as $hour) {
		echo '
		<tr>
			<td>
				<strong>'.$hour[1].'</strong><br />
				<em>Age</em> : '.$hour[2].'</em><br />
				<em>Places max</em> : '.($hour[4] ? $hour[4] : 'Non indiqué').'
			</td>';

			for ($i = 5; $i < count($hour); $i += 2) {
				if ($hour[$i + 1]) {
					echo '<td>'.$hour[$i + 1].'<br /><em>Places disponibles : </em>';
					// si nombre places max indiqué
					if ($hour[4]) {
						$count_members = hours_count_members($hour[$i], $hour[0]);
						$available_places = $hour[4] - $count_members;
						if ($available_places <= 0) {
							echo '<strong style="color: red;">Complet</strong>';
						}
						else {
							echo '<strong style="color: green;">'.$available_places.'</strong>';
						}
					}
					else {
						echo '?';
					}
					echo '</td>';
				}
				else {
					echo '<td style="color: gray;"><em>Indisponible</em></td>';
				}
			}
		echo '
		</tr>';
	}
	?>
</table>
</div>
